/*
 *   Copyright 2021 zzh
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 */

package com.aduib.boot.common.asm;

/**
 * @description: Base2Impl
 * @author: zzh
 * @date: 2021/10/22 15:45
 */
public class Base2Impl implements Base2 {
    private final com.aduib.boot.common.SPI.SPIFactory SPIFactory=com.aduib.boot.common.SPI.SPILoader.INSTANCE;
    @Override
    public void ehco(String msg) {
        Base2 spi = null;
        if(spi==null) {try {
            spi = (Base2)SPIFactory.getSPI(Base2.class,"base3");
        } catch (Throwable t) { throw new IllegalStateException(t);}
        }
//    if(spi==null) {try {
//      spi = (com.aduib.boot.common.SPI.Demo)SPIFactory.getSPI(com.aduib.boot.common.SPI.Demo.class,"demo1");
//    } catch (Throwable t) { t.printStackTrace(); }
//    }
//    if(spi==null) {try {
//      spi = (com.aduib.boot.common.SPI.Demo)SPIFactory.getSPI(com.aduib.boot.common.SPI.Demo.class,"demo1");
//    } catch (Throwable t) { t.printStackTrace(); }
//    }
        spi.ehco(msg);
    }

  //    @Override
  //    public String ehco2(String msg) {
  //        Base2 spi = null;
  //        if(spi==null) {try {
  //            spi = (Base2)SPIFactory.getSPI(Base2.class,"base3");
  //        } catch (Throwable t) { throw new IllegalStateException(t);}
  //        }
  ////    if(spi==null) {try {
  ////      spi =
  // (com.aduib.boot.common.SPI.Demo)SPIFactory.getSPI(com.aduib.boot.common.SPI.Demo.class,"demo1");
  ////    } catch (Throwable t) { t.printStackTrace(); }
  ////    }
  ////    if(spi==null) {try {
  ////      spi =
  // (com.aduib.boot.common.SPI.Demo)SPIFactory.getSPI(com.aduib.boot.common.SPI.Demo.class,"demo1");
  ////    } catch (Throwable t) { t.printStackTrace(); }
  ////    }
  //        return spi.ehco2(msg);
  //    }
  //
  @Override
  public String ehco2(String msg, String className) {
    Base2 spi = null;
    if (spi == null) {
      try {
        spi = (Base2) SPIFactory.getSPI(Base2.class, "base3");
      } catch (Throwable t) {
        throw new IllegalStateException(t);
      }
    }
    if (spi == null) {
      try {
        spi = (Base2) SPIFactory.getSPI(Base2.class, "base4");
      } catch (Throwable t) {
        t.printStackTrace();
      }
    }
    if (spi == null) {
      try {
        spi = (Base2) SPIFactory.getSPI(Base2.class, "base3");
      } catch (Throwable t) {
        t.printStackTrace();
      }
    }
    return spi.ehco2(msg, className);
  }
//
//    @Override
//    public void ehco2() {
//        Base2 spi = null;
//        if(spi==null) {try {
//            spi = (Base2)SPIFactory.getSPI(Base2.class,"base3");
//        } catch (Throwable t) { throw new IllegalStateException(t);}
//        }
////    if(spi==null) {try {
////      spi = (com.aduib.boot.common.SPI.Demo)SPIFactory.getSPI(com.aduib.boot.common.SPI.Demo.class,"demo1");
////    } catch (Throwable t) { t.printStackTrace(); }
////    }
////    if(spi==null) {try {
////      spi = (com.aduib.boot.common.SPI.Demo)SPIFactory.getSPI(com.aduib.boot.common.SPI.Demo.class,"demo1");
////    } catch (Throwable t) { t.printStackTrace(); }
////    }
//    spi.ehco2();
//    }
}
